﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using dacli.modelos.dao;
using dacli.modelos;

namespace dacli.pantallas
{
    public partial class Cajeros : Form
    {
        public Cajeros()
        {
            InitializeComponent();
            this.limpiar();
        }
        private void limpiar()
        {
            txtIdentificacion.Text = "";
            txtNombre.Text = "";
            txtContraseña.Text = "";
            btnIncluir.Enabled = false;
            btnModificar.Enabled = false;
            btnEliminar.Enabled = false;
        }

        private void button6_Click(object sender, EventArgs e)
        {
            SendKeys.Send("{TAB}");
        }

        private void txtIdentificacion_TextChanged(object sender, EventArgs e)
        {

        }

        private void txtIdentificacion_Validated(object sender, EventArgs e)
        {
            UsuariosDAO usuarioDao = new UsuariosDAO();
            if (usuarioDao.consultar("alias = '" + txtIdentificacion.Text + "'"))
            {
                txtNombre.Text = usuarioDao.usuario.nombre;
                txtContraseña.Text = usuarioDao.usuario.clave;
                btnIncluir.Enabled = false;
                btnModificar.Enabled = true;
                btnEliminar.Enabled = true;
            }
            else {
                string aux = txtIdentificacion.Text;
                this.limpiar();
                txtIdentificacion.Text = aux;
                btnIncluir.Enabled = true;
            }
            
        }

        private void BtnSalir_Click(object sender, EventArgs e)
        {
            this.Close(); 
        }

        private void splitContainer1_Panel1_Paint(object sender, PaintEventArgs e)
        {

        }

        private void btnIncluir_Click(object sender, EventArgs e)
        {
            Usuarios usuario = new Usuarios();
            usuario.alias = txtIdentificacion.Text;
            usuario.nombre = txtNombre.Text;
            usuario.clave = txtContraseña.Text;
            new UsuariosDAO(usuario).incluir();
            MessageBox.Show("Registro incluido");
            this.limpiar();
        }

        private void btnModificar_Click(object sender, EventArgs e)
        {
            Usuarios usuario = new Usuarios();
            UsuariosDAO usuarioDao = new UsuariosDAO();
            if (usuarioDao.consultar("alias = '" + txtIdentificacion.Text + "'"))
            {
                usuario = (Usuarios)usuarioDao.usuario.Clone();
            }
            
            usuario.alias = txtIdentificacion.Text;
            usuario.nombre = txtNombre.Text;
            usuario.clave = txtContraseña.Text;
            new UsuariosDAO(usuario).modificar();
            MessageBox.Show("Registro modificado");
            this.limpiar();
        }

        private void btnEliminar_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show(this, "¿Está seguro que desea Eliminar?", "Eliminar Registro", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) {

                Usuarios usuario = new Usuarios();
                UsuariosDAO usuarioDao = new UsuariosDAO();
                if (usuarioDao.consultar("alias = '" + txtIdentificacion.Text + "'"))
                {
                    usuario = (Usuarios)usuarioDao.usuario.Clone();
                }
                new UsuariosDAO(usuario).eliminar();
                MessageBox.Show("Registro eliminado");
                this.limpiar();      
            }
        }

        private void btnBuscar_Click(object sender, EventArgs e)
        {
            Catalogo catalogo = new Catalogo(new UsuariosDAO().tabla, "nombre");
            catalogo.ShowDialog();
            UsuariosDAO usuarioDao = new UsuariosDAO();
            if (catalogo.resultado != -1) { 
                usuarioDao.asignarId(catalogo.resultado);
                txtNombre.Text = usuarioDao.usuario.nombre;
                txtContraseña.Text = usuarioDao.usuario.clave;
                txtIdentificacion.Text = usuarioDao.usuario.alias;
            }

        }

        private void splitContainer1_Panel2_Paint(object sender, PaintEventArgs e)
        {

        }

        private void Cajeros_Load(object sender, EventArgs e)
        {
            txtIdentificacion.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
            txtIdentificacion.AutoCompleteSource = AutoCompleteSource.CustomSource;
            txtIdentificacion.AutoCompleteCustomSource.AddRange(new UsuariosDAO().listar("nombre").ToArray());

        }

        private void txtNombre_TextChanged(object sender, EventArgs e)
        {

        }
    }
}
